/*

	CDirectionalLight.h
	
	Directional light type implementation of the
	ILightSource interface.
	
	Written by Sigurd Suhm 2009

*/

#ifndef _CDIRECTIONALLIGHT_H
#define _CDIRECTIONALLIGHT_H

// Includes
#include "ILightSource.h"
#include "Vector.h"			// Vector classes header

namespace EraAstral
{
	namespace graphics
	{
		class DirectionalLight : public ILightSource
		{
			private:
				// Light source direction vector
				Vector3		*m_direction;
		
			public:
				// Default constructor
				DirectionalLight(core::SceneManager *sceneManager);
				// Default destructor
				~DirectionalLight();
				
				// Commits changes to OpenGL
				void	Commit();
				// Applies lighting to the scene
				void	Apply();
				
				// Accessors
				Vector3		*GetDirection() const;
				void		SetDirection(const Vector3& direction);
		};
	}
}

#endif		// _CDIRECTIONALLIGHT_H